package cn.easyutil.project.base.sqlExecuter.annotation;

import cn.easyutil.project.base.jdbc.MySQLJDBCTypeEnum;
import cn.easyutil.project.base.jdbc.QueryType;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 标注数据库表的字段名称
 * 如果与本地名称相同，则不用标记
 *
 * @author spc
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TableField {

    /**
     * 数据库列名
     *
     * @return
     */
    @AliasFor(value = "name")
    String value() default "";



    /**
     * 数据库列名
     *
     * @return
     */
    @AliasFor(value = "value")
    String name() default "";

    /**
     * 字段忽略
     *
     * @return 是否忽略
     */
    boolean ignore() default false;

    /**
     * 字段默认的查询类型
     * @return
     */
    QueryType queryType() default QueryType.equals;

    /**
     * 数据库字段类型
     *
     * @return 类型
     */
    MySQLJDBCTypeEnum jdbcType() default MySQLJDBCTypeEnum.NONE;

    /**
     * 数据长度
     *
     * @return 数据长度
     */
    int length() default 0;

    /**
     * 小数部分的长度
     *
     * @return 小数部分的长度
     */
    int fraction() default 0;
}
